package chatModel;

import java.net.InetAddress;

/**
 * Classe décrivant un utilisateur distant
 * 
 */
public class UtilisateurDistant {
	
	private String userName;
	
	private InetAddress userDistantIP;

        /**
         * Constructeur
         * @param Pseudo de l'utilisateur distant
         * @param Adresse IP de l'utilisateur distant
         */
	public UtilisateurDistant(String userName, InetAddress userDistantIP) {
		super();
		this.userName = userName;
		this.userDistantIP = userDistantIP;
	}

        /**
         * Donne le nom de l'utilisateur distant
         * @return Nom de l'utilisateur distant
         */
	public String getUserName() {
		return userName;
	}

        /**
         * Donne l'adresse IP de l'utilisateur distant
         * @return Adresse IP de l'utilisateur distant
         */
	public InetAddress getUserDistantIP() {
		return userDistantIP;
	}

        /**
         * Redéfinition de la méthode toString
         * @return NomUtilisateurDistant@NomHoteDistante
         */
	@Override
	public String toString() {
		return userName+"@"+userDistantIP.toString();
	}
        
        /**
         * Redéfintion de la méthode equals pour le comparer correctement dans une ArrAyList
         * Compare seulement l'adresse IP et le nom
         * @param object Autre utilisateur distant
         * @return true si c'est le même utilisateur distant faux sinon
         */
        @Override
        public boolean equals(Object object){
            if( object instanceof UtilisateurDistant){
                UtilisateurDistant tempUtilisateur = (UtilisateurDistant) object;
                if(this.userName.equals(tempUtilisateur.getUserName()) && this.userDistantIP.getHostAddress().equals(tempUtilisateur.getUserDistantIP().getHostAddress())){
                    return true;
                }
                else{
                    return false;
                }
            }
            else{
                return false;
            }
        }
	
	

}
